//
//import com.huawei.ffrt.ffrt_this_task_get_id
//import kotlinx.cinterop.*
//import platform.posix.*
//import kotlinx.coroutines.*
//import kotlin.concurrent.AtomicInt
//import kotlin.coroutines.CoroutineContext
//import kotlin.native.concurrent.*
//
//// 基于ffrt的自定义调度器
//class FfrtDispatcher : CoroutineDispatcher() {
//
//    @OptIn(ExperimentalForeignApi::class)
//    override fun dispatch(context: CoroutineContext, block: Runnable) {
//        Task.submit({
//            block.run()
//        })
//    }
//}
//
///**
// * 主协程运行在: 139825185827904
// * 2025-11-6 15:3:32.418  2520  2524 D ffrt : 14:Execute:88 Execute task[2], name[t1]
// * 2025-11-6 15:3:32.419  2520  2527 D ffrt : 22:Execute:88 Execute task[5], name[t4]
// * 2025-11-6 15:3:32.419  2520  2525 D ffrt : 19:Execute:88 Execute task[3], name[t2]
// * 2025-11-6 15:3:32.420  2520  2526 D ffrt : 25:Execute:88 Execute task[4], name[t3]
// * 2025-11-6 15:3:32.422  2520  2528 D ffrt : 28:Execute:88 Execute task[6], name[t5]
// * 任务 0 在自定义线程中执行:139825122264832, gid:2
// * 任务 3 在自定义线程中执行:139825097086720, gid:5
// * 2025-11-6 15:3:32.435  2520  2524 D ffrt : 32:Finish:119 free SCPUEUTask:t1 gid=2
// * 2025-11-6 15:3:32.435  2520  2527 D ffrt : 33:Finish:119 free SCPUEUTask:t4 gid=5
// * 任务 2 在自定义线程中执行:139825105479424, gid:4
// * 任务 1 在自定义线程中执行:139825113872128, gid:3
// * 2025-11-6 15:3:32.437  2520  2526 D ffrt : 34:Finish:119 free SCPUEUTask:t3 gid=4
// * 2025-11-6 15:3:32.437  2520  2525 D ffrt : 35:Finish:119 free SCPUEUTask:t2 gid=3
// * 任务 4 在自定义线程中执行:139824740693760, gid:6
// * 2025-11-6 15:3:32.437  2520  2528 D ffrt : 36:Finish:119 free SCPUEUTask:t5 gid=6
// * 2025-11-6 15:3:33.436  2520  2524 D ffrt : 39:Execute:88 Execute task[8], name[t1]
// * 2025-11-6 15:3:33.436  2520  2529 D ffrt : 40:Execute:88 Execute task[9], name[t2]
// * 2025-11-6 15:3:33.437  2520  2526 D ffrt : 43:Execute:88 Execute task[10], name[t3]
// * 2025-11-6 15:3:33.437  2520  2525 D ffrt : 44:Execute:88 Execute task[11], name[t4]
// * 2025-11-6 15:3:33.438  2520  2528 D ffrt : 46:Execute:88 Execute task[12], name[t5]
// * 任务 0 完成:139825122264832, gid:8
// * 2025-11-6 15:3:33.438  2520  2524 D ffrt : 47:Finish:119 free SCPUEUTask:t1 gid=8
// * 任务 1 完成:139825113872128, gid:11
// * 2025-11-6 15:3:33.442  2520  2525 D ffrt : 48:Finish:119 free SCPUEUTask:t4 gid=11
// * 任务 2 完成:139825105479424, gid:10
// * 2025-11-6 15:3:33.443  2520  2526 D ffrt : 49:Finish:119 free SCPUEUTask:t3 gid=10
// * 任务 4 完成:139824740693760, gid:12
// * 2025-11-6 15:3:33.444  2520  2528 D ffrt : 50:Finish:119 free SCPUEUTask:t5 gid=12
// * 任务 3 完成:139824732301056, gid:9
// * 2025-11-6 15:3:33.447  2520  2529 D ffrt : 51:Finish:119 free SCPUEUTask:t2 gid=9
// * 所有任务执行完毕
// */
//@OptIn(ExperimentalForeignApi::class)
//fun main() = runBlocking {
//    val customDispatcher = FfrtDispatcher()
//
//    println("主协程运行在: ${pthread_self()}")
//
//    val jobs = List(5) { index ->
//        launch(customDispatcher) {
//            println("任务 $index 在自定义线程中执行:${pthread_self()}, gid:${ffrt_this_task_get_id()}")
//            delay(1000L) // 模拟异步工作
//            println("任务 $index 完成:${pthread_self()}, gid:${ffrt_this_task_get_id()}")
//        }
//    }
//
//    jobs.forEach { it.join() }
//    println("所有任务执行完毕")
//}
